As business, governmental, academic, and scientific operations become increasingly computer-enabled and, thus, dependent on the storage and manipulation of electronic or digital information, a greater need arises for efficient mechanisms for communicating electronic information to users.
Barcodes provide a useful and convenient way to convey electronic information through a variety of electronic devices. A barcode is generally an optical machine-readable representation of data, which, for example, shows data about the object to which it is attached. Traditionally, barcodes have represented data by varying the widths and spacings of parallel dark lines and are often referred to as linear or one-dimensional (1D) barcodes. 1D barcodes are scanned in a one-dimensional fashion by special-purpose optical scanning devices that are able to decode the information encoded in the barcodes by measuring the widths and spacings of the parallel barcode lines through reflective light feedback.
1D barcodes, however, suffer from the drawback that their one-dimensional structure allows for only a limited amount of information to be encoded in the barcode. For example, a Universal Product Code (UPC), which is a one-dimensional barcode format that enjoys widespread usage today, is capable of encoding only 12 decimal digits, including start and end patterns. Because of this limitation, the last several decades have seen significant growth in the number of standards for two-dimensional (2D) or “matrix” barcodes.
Many matrix barcodes mimic the functionality of traditional one-dimensional barcodes by providing a pattern of two-dimensionally arranged squares, rectangles, dots, hexagons, or other shapes of varying lengths and widths distributed in two dimensions. One example of a type of matrix barcode that has enjoyed popular usage is the Quick Response or “QR” code standard. Governed by several standards, various versions of QR codes are capable of storing up to 7,089 numeric code characters, 4,296 alphanumeric characters, or 2,953 bytes when encoding purely binary data.
Although by no means a new standard, QR codes have recently gained widespread use as a result of the advancement of mobile devices, such as smartphones, which are capable of reading and quickly rendering barcode data such as QR codes. One common use of QR codes has been to encode Uniform Resource Locators (“URLs”), such as website addresses. Such QR codes are often placed on billboards, mailers, or even buildings to provide consumers with a quick and easy way to visit a company's website without having to memorize, write down, or manually type a URL into a smartphone or other mobile devices. Consumers who see a QR code displayed may take a picture of the QR code using a camera embedded, for example, in the smartphone, and may utilize a smartphone application to automatically translate the QR code to a URL and launch a browser application pointed to the URL. Additional commercial uses of QR codes include encoding coupons or other purchase information into QR codes; customers may decode such QR codes into graphical or textual coupons and present those coupons at businesses to receive discounts on purchased goods or services.
One problem with barcodes, including QR codes, is their safety: that is, it may be difficult or impossible for a user to determine whether a URL encoded within a QR code points to a malicious or otherwise inappropriate website. For example, although a business could attach a QR code on a billboard to advertise its website custom address, an imposter may surreptitiously overlay a second QR code over the original QR code, such that the second QR code directs customers to the imposter's website intended to mimic the website of the business. The imposter's website may then perform malicious acts, such as, infect the user's device with malware or steal the user's password or identity information. Similarly, customers providing or decoding QR codes for the purpose of obtaining coupons or discounts could potentially print out or display forged QR codes that fraudulently entitle them to increased discounts or rewards.
Therefore, there is a need for a system to create for businesses QR codes that promote those businesses in a manner that prevents an imposter from abusing the QR code. Alternatively, there is a need for a method to enable the user to verify or at least assure that a URL encoded in a QR code is secure and thus can be trusted.